package kassa;
/**
 * Write a description of class test here.
 * 
 * @author (Gerben, Nick, Dennis) 
 * @version (v0.1)
 */

import java.util.*;
import java.sql.*;
    
public class Artikel{
    
    public String artikelnaam,locatie;
    public double inkoopprijs, verkoopprijs;
    public int ID, categorie, subcategorie,minVoorraad,voorraad,garantie;
    
    public Artikel(int ID, String artikelnaam, double inkoopprijs, double verkoopprijs, int voorraad, int minVoorraad, int categorie, int subcategorie, String locatie, int garantie){
        this.ID           = ID;
        this.artikelnaam  = artikelnaam;
        this.inkoopprijs  = inkoopprijs;
        this.verkoopprijs = verkoopprijs;
        this.voorraad     = voorraad;
        this.categorie    = categorie;
        this.subcategorie = subcategorie;
        this.locatie      = locatie;
        this.minVoorraad  = minVoorraad;
        this.garantie     = garantie;
        insertArtikelData(ID, artikelnaam, inkoopprijs, verkoopprijs, voorraad, minVoorraad, categorie, subcategorie, locatie, garantie);
    }
    
     public Artikel(int ID){
        this.ID = ID;
        getArtikelData();
    }
    
    /**============= GETTERS ==============**/
    
    public int getID(){
        return ID;
    }
    public String getArtikelnaam(){
        return artikelnaam;
    }
    public double getInkoopprijs(){
        return inkoopprijs;
    }
    public double getVerkoopprijs(){
        return verkoopprijs;
    }
    public int getVoorraad(){
        return voorraad;
    }
    public int getMinVoorraad()
    {
        return minVoorraad;
    }
    public int getCategorie(){
        return categorie;
    }
    public int getSubcategorie(){
        return subcategorie;
    }
    public String getLocatie(){
        return locatie;
    }
    public int getGarantie(){
        return garantie;
    }
  
    
    /**============= SETTERS ==============**/

    public void setArtikelnaam(String eenArtikelnaam)
    {
        artikelnaam = eenArtikelnaam;
        setArtikelData();
    }
    public void setCategorie(int eenCategorie)
    {
        categorie = eenCategorie;
        setArtikelData();
    }
    public void setSubcategorie(int eenSubcategorie)
    {
        subcategorie = eenSubcategorie;
        setArtikelData();
    }
    public void setVoorraad(int eenVoorraad)
    {
        voorraad = eenVoorraad;
        setArtikelData();
    }
    public void setMinvoorraad(int eenMinVoorraad)
    {
        minVoorraad = eenMinVoorraad;
        setArtikelData();
    }
    public void setLocatie(String eenLocatie)
    {
        locatie = eenLocatie;
        setArtikelData();
    }
    public void setInkoopprijs(double eenInkoopprijs)
    {
        inkoopprijs = eenInkoopprijs;
        setArtikelData();
    }
    public void setVerkoopprijs(double eenVerkoopprijs)
    {
        verkoopprijs = eenVerkoopprijs;
        setArtikelData();
    }
    public void setGarantie(int eenGarantie)
    {
        garantie = eenGarantie;
        setArtikelData();
    }


    /**============= PRINT ARTIKEL ==============**/
    
    public void printArtikel() {
        System.out.println( toString() + "\n" );
    }

    public String toString() //
    {
        String a = String.format("%-5d %-20s %-20.2f %-20.2f %-20d %-20d %-10d %-20d %-10s %-10d",
                                  ID, artikelnaam,inkoopprijs,verkoopprijs,categorie,subcategorie,voorraad,minVoorraad,locatie,garantie);
        return a;
    }
    
    public void getArtikelData()
    {
        try{
            ResultSet rs = Database.executeSQLStatement("SELECT * FROM artikelen where ID="+ID); // Selecteer alles van de tabel scores order op aantal en haal 10 rijen uit de database
            while (rs.next ()) 
            {
                artikelnaam  = rs.getString("artikelnaam");
                inkoopprijs  = rs.getDouble("inkoopprijs");
                verkoopprijs = rs.getDouble("verkoopprijs");
                categorie    = rs.getInt("categorie");
                subcategorie = rs.getInt("subcategorie");
                minVoorraad  = rs.getInt("minVoorraad");
                voorraad     = rs.getInt("voorraad");
                locatie      = rs.getString("locatie");
                garantie     = rs.getInt("garantie");
            }
            rs.close();                   
        }
        catch(Exception e)
        { 
            e.printStackTrace();
        }
    }         
    public void setArtikelData()
    {
        try{
            String sql = ("UPDATE artikelen set artikelnaam= '" + artikelnaam + "', inkoopprijs= '" + inkoopprijs + "', verkoopprijs= '" + verkoopprijs + "', categorie= '" + categorie + "', subcategorie= '" + subcategorie + "', voorraad='" + voorraad + "', minVoorraad='" + minVoorraad + "', locatie='" + locatie + "', garantie='" + garantie + "' where ID='"+ ID +"'");
            Database.executeUpdateStatement( sql );
        }
        catch (Exception e){
            System.out.println("De gegevens zijn niet gewijzigd in de db");
            e.printStackTrace();
        }
    }
       
    public void insertArtikelData(int ID, String artikelnaam, double inkoopprijs, double verkoopprijs, int voorraad, int minVoorraad, int categorie, int subcategorie, String locatie, int garantie)
    {
         try{
            String sql = ("INSERT into artikelen set artikelnaam= '" + artikelnaam + "', inkoopprijs= '" + inkoopprijs + "', verkoopprijs= '" + verkoopprijs + "', categorie= '" + categorie + "', subcategorie= '" + subcategorie + "', voorraad='" + voorraad + "', minVoorraad='" + minVoorraad + "', locatie='" + locatie + "', garantie='" + garantie + "'");
            Database.executeUpdateStatement( sql );
        }
        catch (Exception e){
            System.out.println("De gegevens zijn niet gewijzigd in de db");
            e.printStackTrace();
        }
    }
    
    public void delArtikelData(int ID)
    {
         try{
            String sql = ("DELETE from artikelen WHERE ID='"+ ID + "'");
            Database.executeUpdateStatement( sql );
        }
        catch (Exception e){
            System.out.println("Het artikel is niet verwijderd");
            e.printStackTrace();
        }
    }   
}